Casos de Covid-19 no Brasil
https://github.com/wcota/covid19br/
The R Project for Statistical Computing
DT: https://rstudio.github.io/DT/
flexdashboard: https://rmarkdown.rstudio.com/flexdashboard/
ggplot2: https://ggplot2.tidyverse.org/
leaflet: https://rstudio.github.io/leaflet/
leafpop: https://github.com/r-spatial/leafpop brazilmaps: http://github.com/rpradosiqueira/brazilmaps
Dashboard desenvolvido por Leonardo Bastos (pesquisador do MAVE/PROCC/Fiocruz) e por Lucas Bianchi (doutorando em epidemiologia, ENSP/FIocruz). Adaptado do dashboard desenvolvido pela professora Paula Moraga (Univeristy of Bath, UK) usando dados coletados pelo agregador desenvolvido por Wesley Cota (doutorando da UFV e Universidad de Zaragoza, Espanha).
---
title: "Coronavirus COVID-19 Brasil"
output:
flexdashboard::flex_dashboard:
source_code: embed
css: styles.css
vertical_layout: scroll
orientation: rows
navbar:
- { title: "MAVE", href: "http://covid-19.procc.fiocruz.br/" }
editor_options:
chunk_output_type: console
---
```{r, echo=FALSE, results='hide'}
library(tidyverse)
library(flexdashboard)
library(leaflet)
library(lubridate)
library(DT)
library(gridExtra)
library(brazilmaps)
library(leafpop)
library(sf)
```
```{r, echo=FALSE, results='hide', cache=FALSE}
###############################################
# Script feito por Leo Bastos (@leosbastos)
#
# Esse (flex)dashboard foi desenvolvido por Leo Bastos
# (pesquisador do MAVE/PROCC/Fiocruz) e por Lucas Bianchi
# (doutorando em epidemiologia, ENSP/FIocruz).
# Adaptado do dashboard desenvolvido pela professora
# Paula Moraga (Univeristy of Bath, UK) usando dados coletados
# pelo agregador desenvolvido por Wesley Cota
# (doutorando da UFV e Universidad de Zaragoza, Espanha).
# Lendo dados
d.cidades <- read.csv("https://raw.githubusercontent.com/wcota/covid19br/master/cases-brazil-cities-time.csv",
sep=",",encoding = "UTF-8",
stringsAsFactors = F) %>%
filter(!state == "TOTAL") %>%
mutate(status = "Confirmado",
date = ymd(date))
d.cidades.cum <- read.csv("https://raw.githubusercontent.com/wcota/covid19br/master/cases-brazil-cities.csv",
sep=",",encoding = "UTF-8",
stringsAsFactors = F)
d.estados <- read.csv("https://raw.githubusercontent.com/wcota/covid19br/master/cases-brazil-states.csv",
sep=",", encoding = "UTF-8", stringsAsFactors = F) %>%
mutate(date = ymd(date))
## Mapas do Brasil pelo pacote brazilmaps
# Por municipio
cities_map <- get_brmap(geo = "City",
#geo.filter = list(Region = 5),
class = "sf")
# Juntando os casos por cidade e mapa
cities_map <- cities_map %>%
left_join(d.cidades.cum, by = c("City" = "ibgeID"))
# Por estado
state_map <- get_brmap(geo = "State",
#geo.filter = list(Region = 5),
class = "sf")
```
```{r, echo=FALSE, results='hide'}
# leaflet por municipio
cities_map <- cities_map %>%
mutate(
totalCases = replace_na(totalCases, replace = 0),
deaths = replace_na(deaths, replace = 0),
cases.cat = cut(totalCases,
breaks = c(-1, 0, 10, 100, 500, 1000, 1000000),
labels = c("Nenhum caso", "[1 - 10]", "[11-100]", "[101 - 500]", "[501 - 1000]", "Acima de 1000"),
right = T
)
)
pal.cities <- colorFactor(palette = "YlOrRd", cities_map$cases.cat)
# Criando o mapa por município
l <- leaflet( cities_map ) %>%
addTiles() %>%
addProviderTiles(providers$CartoDB.Positron, group = "Claro") %>%
addProviderTiles(providers$HERE.satelliteDay, group = "Satélite") %>%
addPolygons(color = "#444444", weight = 1, smoothFactor = 0.5,
opacity = 1.0, fillOpacity = 0.5,
fillColor = ~pal.cities(cases.cat),
highlightOptions = highlightOptions(color = "white", weight = 2,
bringToFront = TRUE, ),
popup = ~paste0("", nome,":
",
"
Confirmados:
",
totalCases,
"
",
"
Óbitos:
",
deaths,
" ")
) %>%
addLegend("bottomright",
pal = pal.cities,
values = ~cases.cat,
title = "Casos confirmados do COVID-19",
opacity = 1
) %>%
addLayersControl(
baseGroups = c("Claro", "Satélite"),
options = layersControlOptions(collapsed = TRUE)
)
```
```{r, echo=FALSE, results='hide'}
# leaflet por estado
d.estados.cum <- d.estados %>% filter(state != "TOTAL") %>%
group_by(state) %>%
summarise(
totalCases = max(totalCases),
deaths = max(deaths)
)
state.cod <- d.cidades %>%
mutate(
state_cod = as.numeric(substr(x = as.character(ibgeID),start = 1, stop = 2))
) %>%
group_by( state, state_cod ) %>%
summarise(
n = n()
) %>% select(., -n)
state_map <- state_map %>%
left_join( state.cod, by = c("State"="state_cod")) %>%
left_join( d.estados.cum, by = "state" )
state_map <- state_map %>%
mutate(
totalCases = replace_na(totalCases, replace = 0),
deaths = replace_na(deaths, replace = 0),
cases.cat = cut(totalCases,
breaks = c(-1, 0, 100, 500, 1000, 5000, 1000000),
labels = c("Nenhum caso", "[1 - 100]", "[101-500]", "[501 - 1000]", "[1001 - 5000]", "Acima de 5000"),
right = T
)
) # state_map %>% sf::st_drop_geometry() %>% View()
pal.state <- colorFactor(palette = "YlOrRd", domain = state_map$cases.cat)
# Criando o mapa por município
l2 <- leaflet( state_map ) %>%
addTiles() %>%
#addProviderTiles(providers$CartoDB.DarkMatter, group = "Escuro") %>%
addProviderTiles(providers$CartoDB.Positron, group = "Claro") %>%
addProviderTiles(providers$HERE.satelliteDay, group = "Satélite") %>%
addPolygons(color = "#444444", weight = 1, smoothFactor = 0.5,
opacity = 1.0, fillOpacity = 0.5,
fillColor = ~pal.state(cases.cat),
highlightOptions = highlightOptions(color = "white", weight = 2,
bringToFront = TRUE, ),
popup = ~paste0("", nome,":
",
"
Confirmados:
",
totalCases,
"
",
"
Óbitos:
",
deaths,
" ")
) %>%
addLegend("bottomright",
pal = pal.state,
values = ~cases.cat,
title = "Casos confirmados do COVID-19",
#labFormat = labelFormat(prefix = "$"),
opacity = 1
) %>%
addLayersControl(
baseGroups = c("Claro", "Satélite"),
options = layersControlOptions(collapsed = TRUE)
)
```
```{r echo=FALSE, results='hide'}
tbl.covid.state <- d.estados %>%
filter(state != "TOTAL" & totalCases >= 100) %>%
mutate(
date = ymd(date)
)
g.state <- tbl.covid.state %>%
ggplot(aes( y = totalCases, x = date, group = state, color = state )) +
geom_point(show.legend = F) +
scale_color_discrete("Estados") +
geom_line(show.legend = F) +
geom_label( data = tbl.covid.state %>%
filter(date == max(date)),
mapping = aes(x = date, y = totalCases, label = state ),
show.legend = F ) +
scale_y_continuous(trans = "log10") +
ylab("Total de casos de COVID-19") +
#xlab("Dia") +
scale_x_date(name = "Dia", date_breaks = "5 days", date_labels = "%d/%m") +
theme_bw(base_size = 14) +
ggtitle("Estados com transmissão comunitária")
g.state.obitos <- tbl.covid.state %>%
filter(deaths > 10) %>%
ggplot(aes( y = deaths, x = date, group = state, color = state )) +
geom_point(show.legend = F) +
geom_line(show.legend = F) +
geom_label( data = tbl.covid.state %>%
filter(deaths > 10) %>%
filter(date == max(date)),
mapping = aes(x = date, y = deaths, label = state ),
show.legend = F ) +
scale_y_continuous(trans = "log10") +
ylab("Óbitos por COVID-19") +
#xlab("Dia") +
scale_x_date(name = "Dia", date_breaks = "1 day", date_labels = "%d/%m") +
theme_bw(base_size = 14) +
ggtitle("Óbitos em estados com transmissão comunitária", subtitle = "(pelo menos 10 óbitos notificados)" )
g.state.newxtot <- tbl.covid.state %>%
ggplot(aes( y = newCases, x = totalCases, color = state, group = state)) +
geom_line( alpha = 0.5, show.legend = F) +
geom_label( data = tbl.covid.state %>%
filter(date == max(date)),
mapping = aes(newCases, x = totalCases, label = state ),
show.legend = F ) +
scale_x_continuous(trans = "log10") +
scale_y_continuous(trans = "log10") +
xlab("Total de casos") +
ylab("Casos novos") +
theme_bw(base_size = 14)
tbl.covid.state <- tbl.covid.state %>%
group_by(state) %>%
mutate(
tempo = as.numeric( date - min(date) ),
maxtempo = max(tempo)
) %>% ungroup()
g.cases.100 <- tbl.covid.state%>%
ggplot(aes( y = totalCases, x = tempo, group = state, color = state)) +
geom_point(show.legend = F) +
geom_line(show.legend = F) +
geom_label( data = tbl.covid.state %>%
filter(date == max(date) ),
mapping = aes(x = maxtempo, y = totalCases, label = state ),
show.legend = F ) +
scale_y_continuous(trans = "log10") +
ylab("Total de casos") +
xlab("Dias a partir do centésimo caso") +
theme_bw(base_size = 14)
g.obitos.100 <- tbl.covid.state %>%
filter(deaths > 10 ) %>%
ggplot(aes( y = deaths, x = tempo, group = state, color = state)) +
geom_point(show.legend = F) +
geom_line(show.legend = F) +
geom_label( data = tbl.covid.state %>%
filter(deaths > 10 ) %>%
filter(date == max(date) ),
mapping = aes(x = maxtempo, y = deaths, label = state ),
show.legend = F ) +
scale_y_continuous(trans = "log10") +
ylab("Total de óbitos") +
xlab("Dias a partir do centésimo caso e 10o óbito") +
theme_bw(base_size = 14)
```
COVID-19 por estados
=====================================
Row
-----------------------------------------------------------------------
### Casos confirmados de COVID-19
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = sum(d.estados.cum$totalCases),
color = "orange",
#icon = "glyphicon-ok"
)
```
### Óbitos por COVID-19
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = sum(d.estados.cum$deaths),
color = "red",
#icon = "glyphicon-ok-sign"
)
```
### Letalidade
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = paste( round(sum(d.estados.cum$deaths) / sum(d.estados.cum$totalCases) * 100), "%"),
color = "red",
#icon = "glyphicon-ok-sign"
)
```
Row
-----------------------------------------------------------------------
### Casos confirmados por estado
```{r}
g.state
```
### Clique nos estados para ver as estatísticas {data-width=500}
```{r}
l2
```
Row
-----------------------------------------------------------------------
### Óbitos por estado
```{r}
g.state.obitos
```
### Óbitos confirmados a partir do 100o dia
```{r}
g.obitos.100
```
COVID-19 por municípios
=====================================
Row
-----------------------------------------------------------------------
### Casos confirmados de COVID-19
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = sum(d.estados.cum$totalCases),
color = "orange",
#icon = "glyphicon-ok"
)
```
### Óbitos por COVID-19
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = sum(d.estados.cum$deaths),
color = "red",
#icon = "glyphicon-ok-sign"
)
```
### Letalidade
```{r}
#usar o dconfirmed pq o dados remove
valueBox(value = paste( round(sum(d.estados.cum$deaths) / sum(d.estados.cum$totalCases) * 100), "%"),
color = "red",
#icon = "glyphicon-ok-sign"
)
```
Row
-----------------------------------------------------------------------
### Casos confirmados por estado
```{r}
g.cases.100
```
### Clique nos municípios para ver as estatísticas {data-width=500}
```{r}
l
```
Informação atualizada em `r format(max(d.cidades$date), "%d/%m/%Y")`
=====================================
Fonte dos dados
**Casos de Covid-19 no Brasil**
https://github.com/wcota/covid19br/
Software
**The R Project for Statistical Computing**
https://www.r-project.org/
DT: https://rstudio.github.io/DT/
flexdashboard: https://rmarkdown.rstudio.com/flexdashboard/
ggplot2: https://ggplot2.tidyverse.org/
leaflet: https://rstudio.github.io/leaflet/
leafpop: https://github.com/r-spatial/leafpop
brazilmaps: http://github.com/rpradosiqueira/brazilmaps
Dashboard desenvolvido por Leonardo Bastos (pesquisador do MAVE/PROCC/Fiocruz) e por [Lucas Bianchi](http://www.lucasbianchi.com/) (doutorando em epidemiologia, ENSP/FIocruz). Adaptado do dashboard desenvolvido pela professora [Paula Moraga](http://www.paulamoraga.com/) (Univeristy of Bath, UK) usando dados coletados pelo agregador desenvolvido por [Wesley Cota](https://wesleycota.com/) (doutorando da UFV e Universidad de Zaragoza, Espanha).